package com.anti.modular.bus.roomexpenses.service;

import com.anti.jdbc.support.page.PageParam;
import com.anti.jdbc.support.page.PageResult;
import com.anti.modular.bus.roomexpenses.entity.RoomExpenses;
import com.anti.modular.bus.roomexpenses.param.RoomExpensesParam;
import com.anti.modular.bus.roomexpenses.result.LeaseExpensesResult;
import com.anti.modular.bus.roomexpenses.result.RoomExpensesResult;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * 房间费用表service接口
 *
 * @author anti
 * @date 2021-04-18 17:08:44
 */
public interface RoomExpensesService{

    /**
    * 根据主键查询实体
    */
    RoomExpenses getById(RoomExpensesParam roomExpensesParam);

    List<RoomExpensesResult> getByIds(List<Long> ids);

    /**
     * 查询房间费用表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
    PageResult page(PageParam pageParam,RoomExpensesParam roomExpensesParam);

    /**
     * 房间费用表列表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
    List<RoomExpenses> list(RoomExpensesParam roomExpensesParam);

    List<RoomExpensesResult> getExpensesListByRoomId(Long roomId);
    List<LeaseExpensesResult> getExpensesListByLeaseId(Long leaseId);
    /**
     * 根据id 和类型查询房间费用
     * @param roomId
     * @param type null默认全部 1 只查询租金的 2 只查询非租金的
     * @return
     */
    List<RoomExpensesResult> getExpensesListByRoomId(Long roomId,String type);

    /**
     * 添加房间费用表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
    void add(RoomExpensesParam roomExpensesParam);


    void addEntity(RoomExpenses roomExpenses);

    /**
     * 删除房间费用表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
    void delete(RoomExpensesParam roomExpensesParam);

    void deleteFyByRoomId(Long roomId);

    /**
     * 编辑房间费用表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
    void edit(RoomExpensesParam roomExpensesParam);

    /**
     * 查看房间费用表
     *
     * @author anti
     * @date 2021-04-18 17:08:44
     */
     RoomExpenses detail(RoomExpensesParam roomExpensesParam);

}
